home *** CD-ROM | disk | FTP | other *** search
- /*
- * $VER: smearshadow 0.9
- * by Carl Licke / Turbid design
- * mailto:carl.licke@swipnet.se
- * http://home2.swipnet.se/~w-24653/
- *
- * Arexx script for ImageFX
- */
-
- OPTIONS RESULTS
-
- xincr =GETCLIP('smearshadow_xincr')
- yincr =GETCLIP('smearshadow_yincr')
- shade =GETCLIP('smearshadow_shade')
- gauss =GETCLIP('smearshadow_gauss')
- length =GETCLIP('smearshadow_length')
- angle =GETCLIP('smearshadow_angle')
- mgik =GETCLIP('smearshadow_mgik')
- aalias =GETCLIP('smearshadow_aalias')
- bgswap =GETCLIP('smearshadow_bgswap')
- shcol =GETCLIP('smearshadow_shcol')
- bgcol =GETCLIP('smearshadow_bgcol')
- disp =GETCLIP('smearshadow_disp')
- ofsx =GETCLIP('smearshadow_ofsx')
- ofsy =GETCLIP('smearshadow_ofsy')
-
- /* ------ here you may change the defaults ------ */
- IF xincr='' THEN xincr=25
- IF yincr='' THEN yincr=25
- IF shade='' THEN shade=80
- IF gauss='' THEN gauss=2
- IF length='' THEN length=15
- IF angle='' THEN angle=135
- IF mgik='' THEN mgik=0
- IF aalias='' THEN aalias=0
- IF bgswap='' THEN bswap=0
- IF shcol='' THEN shcol=0
- IF bgcol='' THEN bgcol=0
- IF disp='' THEN disp=0
- IF ofsx='' THEN ofsx=5
- IF ofsy='' THEN ofsy=5
-
- Gadget.1 = 'I/140/18/x size increase/'xincr
- Gadget.2 = 'I/140/35/y size increase/'yincr
- Gadget.3 = 'I/140/52/shade (0-100)/'shade
- Gadget.4 = 'I/140/69/softness (0-5)/'gauss
- Gadget.5 = 'I/140/86/length (1-50)/'length
- Gadget.6 = 'I/140/103/angle (-180 - 180)/'angle
- Gadget.7 = 'X/230/19/magic scissors/'mgik
- Gadget.8 = 'X/230/36/anti alias/'aalias
- Gadget.9 = 'X/230/53/background from swap/'bgswap
- Gadget.10= 'X/230/70/pick color for smear/'shcol
- Gadget.11= 'X/230/87/pick color for backg./'bgcol
- Gadget.12= 'X/230/104/disperse/'disp
- Gadget.13= 'X/230/121/save these settings/1'
- Gadget.14= 'I/140/120/offset x/'ofsx
- Gadget.15= 'I/140/137/offset y/'ofsy
-
- ComplexRequest '"smearshadow"' 15 Gadget 427 174
- IF rc ~= 0 THEN EXIT
-
- xincr = result.1
- yincr = result.2
- shade = result.3
- gauss = result.4
- length = result.5
- angle = result.6
- mgik = result.7
- aalias = result.8
- bgswap = result.9
- shcol = result.10
- bgcol = result.11
- disp = result.12
- saveit = result.13
- ofsx = result.14
- ofsy = result.15
-
- ifxver=0
- ADDRESS COMMAND 'list ImageFX:Matrix/GuassianLow ImageFX:Matrix/GaussianMedium ImageFX:Matrix/GuassianHigh >NIL:'
- IF rc = 0 THEN ifxver=1
- ADDRESS COMMAND 'list ImageFX:Storage/Convolve/GaussianLow ImageFX:Storage/Convolve/GaussianMedium ImageFX:Storage/Convolve/GaussianHigh >NIL:'
- IF rc = 0 THEN ifxver=2
- IF ifxver=0 THEN DO
- RequestNotify 'Error! Please contact carl.licke@swipnet.se'
- EXIT
- END
-
- IF saveit=1 THEN DO
- CALL SETCLIP('smearshadow_xincr', xincr)
- CALL SETCLIP('smearshadow_yincr', yincr)
- CALL SETCLIP('smearshadow_shade', shade)
- CALL SETCLIP('smearshadow_gauss', gauss)
- CALL SETCLIP('smearshadow_length', length)
- CALL SETCLIP('smearshadow_angle', angle)
- CALL SETCLIP('smearshadow_mgik', mgik)
- CALL SETCLIP('smearshadow_aalias', aalias)
- CALL SETCLIP('smearshadow_bgswap', bgswap)
- CALL SETCLIP('smearshadow_shcol', shcol)
- CALL SETCLIP('smearshadow_bgcol', bgcol)
- CALL SETCLIP('smearshadow_disp', disp)
- CALL SETCLIP('smearshadow_ofsx', ofsx)
- CALL SETCLIP('smearshadow_ofsy', ofsy)
- END
-
- shr=0
- shg=0
- shb=0
- bgr=255
- bgg=255
- bgb=255
-
- GetPalette '0'
- PARSE VAR result r g b
-
- IF bgcol=1 & bgswap=1 THEN DO
- RequestNotify 'No background pick, you told me to use swap.'
- bgcol=0
- END
-
- IF shcol=1 THEN DO
- ActiveColor 0
- Message 'pick shadow color'
- Pick
- WaitFor SELECTUP
- GetPalette '-1'
- PARSE VAR result shr shg shb
- SetPalette 0 r g b
- Message ''
- END
-
- IF bgcol=1 THEN DO
- ActiveColor 0
- Message 'pick background color'
- Pick
- WaitFor SELECTUP
- GetPalette '-1'
- PARSE VAR result bgr bgg bgb
- Message ''
- END
-
- Redraw Off
- SaveUndo
- Undo Off
- AlphaChannel Off
- EdgeMode Normal 0
- FillMode Solid 0 0 0 SMOOTH
- Grey2Color
- Transparency 0 0 1
-
- GetMain
- PARSE VAR result name width height depth
-
- IF bgswap=1 THEN DO
- Swap
- SaveBufferAs ILBM "T:smearshadowswaptemp.ilbm"
- Swap
- SaveBufferAs ILBM "T:smearshadowtemp.ilbm"
- END
-
- newwidth=width+xincr
- newheight=height+yincr
-
- CALL pickitup
-
- Scale newwidth newheight+8 BORDER
-
- ClearBuffer bgr bgg bgb FORCE
-
- ActiveColor 0
- SetPalette '-1' shr shg shb
-
- IF bgswap=1 THEN SetPalette '-1' 0 0 0
-
- Blend shade
- DrawMode Color
- NewArea
- AddArea x y
- FreeDraw
- DrawMode Normal
- Blend 100
-
- IF ifxver=1 THEN DO
- IF gauss=1 THEN DO
- Convolve "Matrix/GuassianLow"
- END
- IF gauss=2 THEN DO
- Convolve "Matrix/GaussianMedium"
- END
- IF gauss=3 THEN DO
- Convolve "Matrix/GuassianHigh"
- END
- IF gauss=4 THEN DO
- Convolve "Matrix/GuassianHigh"
- Convolve "Matrix/GuassianHigh"
- END
- IF gauss=5 THEN DO
- Convolve "Matrix/GuassianHigh"
- Convolve "Matrix/GuassianHigh"
- Convolve "Matrix/GuassianHigh"
- END
- END
-
- IF ifxver=2 THEN DO
- IF gauss=1 THEN DO
- Convolve "Storage/Convolve/GaussianLow"
- END
- IF gauss=2 THEN DO
- Convolve "Storage/Convolve/GaussianMedium"
- END
- IF gauss=3 THEN DO
- Convolve "Storage/Convolve/GaussianHigh"
- END
- IF gauss=4 THEN DO
- Convolve "Storage/Convolve/GaussianHigh"
- Convolve "Storage/Convolve/GaussianHigh"
- END
- IF gauss=5 THEN DO
- Convolve "Storage/Convolve/GaussianHigh"
- Convolve "Storage/Convolve/GaussianHigh"
- Convolve "Storage/Convolve/GaussianHigh"
- END
- END
-
- Crop 0 0 newwidth newheight
-
- IF disp=1 THEN DO
- Disperse 1
- END
-
- MotionBlur angle length
-
- IF bgswap=1 THEN DO
- Negative
- SaveAlphaAs ILBM "T:smearshadowalphatemp.ilbm"
- Buffer2Alpha
- PickupSwap
- Region Full
- ClearBuffer 0 0 0 FORCE
- FillMode Tile 0 0 0 Smooth
- FloodFill 0 0 1
- FillMode Solid 0 0 0 Smooth
- Swap
- CreateBuffer newwidth newheight shr shg shb FORCE
- Swap
- Merge 100 ALPHA
- Swap
- KillAlpha
- LoadBuffer "T:smearshadowtemp.ilbm" Force
- CALL pickitup
- LoadBuffer "T:smearshadowswaptemp.ilbm" Force
- LoadAlpha "T:smearshadowalphatemp.ilbm" Force
- Swap
- ADDRESS COMMAND 'Delete "T:smearshadowtemp.ilbm" QUIET'
- ADDRESS COMMAND 'Delete "T:smearshadowalphatemp.ilbm" QUIET'
- ADDRESS COMMAND 'Delete "T:smearshadowswaptemp.ilbm" QUIET'
- END
-
- IF aalias=1 THEN EdgeMode AntiAlias 0
-
- NewArea
- AddArea x y
- FreeDraw
- EdgeMode Normal 0
- KillBrush
- SetPalette 0 r g b
- Redraw On
- Undo On
-
- EXIT
-
- pickitup:
- IF mgik=1 THEN
- MagicScissors
- ELSE
- Scissors
- Box 0 0 width height
- Region Full
- IF (angle>90 & angle<180) | (angle=90) | (angle=180) | (angle=-180) THEN DO
- BrushHandle 0 0
- x=ofsx
- y=ofsy
- END
- IF angle>0 & angle<90 THEN DO
- BrushHandle width 0
- x=newwidth-ofsx
- y=ofsy
- END
- IF (angle>-90 & angle<0) | (angle=-90) | (angle=0) THEN DO
- BrushHandle width height
- x=newwidth-ofsx
- y=newheight-ofsy
- END
- IF angle>-180 & angle<-90 THEN DO
- BrushHandle 0 height
- x=ofsx
- y=newheight-ofsy
- END
- RETURN
-